$(function () {
    getProductId()
    //验证账单编号
    $('#billCode').blur(checkBillCode)
    //验证商品名称
    $('#productName').blur(checkProductName)
    //验证商品单位
    $('#productUnit').blur(checkProductUnit)
    //验证商品数量
    $('#productCount').blur(checkProductCount)
    //验证商品价格
    $('#totalPrice').blur(checkTotalPrice)
    //验证供应商编号
    $('#providerId').blur(checkProviderId)
    //验证供应商选择
    $('.providers').change(checkProviders)
    //提交表单进行修改操作
    $('#submit').submit(function (e) {
        e.preventDefault()
        //判断当前的表单验证是否通过
        let flag = checkBillCode() & checkProductName() &
            checkProductUnit() & checkProductCount() &
            checkTotalPrice() & checkProviderId() & checkProviders()
        // if (flag === 0) {
        //     return alert('请正确填写修改信息')
        // }
        console.log(checkProductUnit());
        //提交表单进行修改操作
        updateUser()
    })
})

// 验证账单编号
function checkBillCode() {
    let billCode = $('#billCode')
    let v = billCode.val()
    let parent = billCode.parent()
    let span = billCode.next()
    span.empty()
    //判断空
    if (!v) {
        parent.removeClass('ok').addClass('error')
        span.html('账单编号不能为空')
        return false
    }
    parent.removeClass('error').addClass('ok')
    span.html('账单编号正确')
    return true
}

//验证商品名称
function checkProductName() {
    let productName = $('#productName')
    let v = productName.val()
    let parent = productName.parent()
    let span = productName.next()
    span.empty()
    //判断空
    if (!v) {
        parent.removeClass('ok').addClass('error')
        span.html('商品名称不能为空')
        return false
    }
    parent.removeClass('error').addClass('ok')
    span.html('商品名称正确')
    return true
}

// 验证商品单位
function checkProductUnit() {
    let productUnit = $('#productUnit')
    let v = productUnit.val()
    let parent = productUnit.parent()
    let span = productUnit.next()
    span.empty()
    //判断空
    if (!v) {
        parent.removeClass('ok').addClass('error')
        span.html('商品单位不能为空')
        return false
    }
    parent.removeClass('error').addClass('ok')
    span.html('商品单位正确')
    return true
}

// 验证商品数量
function checkProductCount() {
    let productCount = $('#productCount')
    let v = productCount.val()
    let parent = productCount.parent()
    let span = productCount.next()
    span.empty()
    //判断空
    if (!v) {
        parent.removeClass('ok').addClass('error')
        span.html('商品数量不能为空')
        return false
    }
    parent.removeClass('error').addClass('ok')
    span.html('商品数量正确')
    return true
}

// 验证商品价格
function checkTotalPrice() {
    let totalPrice = $('#totalPrice')
    let v = totalPrice.val()
    let parent = totalPrice.parent()
    let span = totalPrice.next()
    span.empty()
    //判断空
    if (!v) {
        parent.removeClass('ok').addClass('error')
        span.html('商品价格不能为空')
        return false
    }
    parent.removeClass('error').addClass('ok')
    span.html('商品价格正确')
    return true
}

// 验证供应商编号
function checkProviderId() {
    let providerId = $('#providerId')
    let v = providerId.val()
    let parent = providerId.parent()
    let span = providerId.next()
    span.empty()
    //判断空
    if (!v) {
        parent.removeClass('ok').addClass('error')
        span.html('供应商编号不能为空')
        return false
    }
    parent.removeClass('error').addClass('ok')
    span.html('供应商编号正确')
    return true
}

async function updateUser() {
    let {
        id
    } = getParams()
    let options = {
        url: 'http://146.56.230.35:3007/bill/updateBillById',
        type: 'PUT',
        data: {
            id: parseInt(id),
            billCode: $('#billCode').val(),
            productName: $('#productName').val(),
            productUnit: $('#productUnit').val(),
            productCount: $('#productCount').val(),
            totalPrice: parseInt($('#totalPrice').val()),
            providerId: parseInt($('#providerId').val()),
            isPayment: parseInt($('.isPayment:checked').val()),
        }
    }
    //发起修改请求
    let res = await request(options)
    if (res.code !== 200) {
        return alert(res.msg)
    }
    //修改成功，跳转到用户列表页面
    location = 'billList.html'
}


//验证供应商选择
function checkProviders() {
    let providers = $('.providers')
    let v = providers.val()
    let parent = providers.parent()
    let span = providers.next()
    span.empty()
    //判断空
    if (!v) {
        parent.removeClass('ok').addClass('error')
        span.html('请选择供应商')
        return false
    }
    if (v === '1') {
        parent.removeClass('error').addClass('ok')
        span.html('您选择了北京市粮油总公司')
        return true
    }
    if (v === '2') {
        parent.removeClass('error').addClass('ok')
        span.html('您选择了邯郸市五得利面粉厂')
        return true
    }
}
// 根据id查找后端列表
async function getProductId() {
    let {
        id
    } = getParams()
    let options = {
        url: 'http://146.56.230.35:3007/bill/getBillById',
        type: 'GET',
        data: {
            id: parseInt(id)
        }
    }
    let res = await request(options)
    console.log(res);
    // 渲染数据
    $('#billCode').val(res.data.billCode)
    $('#productName').val(res.data.productName)
    $('#productUnit').val(res.data.productUnit)
    $('#productCount').val(res.data.productCount)
    $('#totalPrice').val(res.data.totalPrice)
    $('#providerId').val(res.data.providerId)
}


//获得url中的查询参数
function getParams() {
    //?id=40&name=tom
    let search = location.search
    if (!search) {
        return null
    }
    search = search.substring(1)
    let index = search.indexOf('&')
    let object = {}
    if (index === -1) {
        let arr = search.split('=')
        object[arr[0]] = arr[1]
    } else {
        //id=40&name=tom--->arr=['id=40','name=tom']
        let arr = search.split('&')
        for (let i = 0; i < arr.length; i++) {
            //'id=40'
            let item = arr[i]
            //'id=40'--->['id','40']
            let array = item.split('=')
            object[array[0]] = array[1]
        }
    }
    return object
}